iT邦幫忙

2024 iThome 鐵人賽

DAY 22
0
佛心分享-IT 人自學之術

從0開始學PYTHON系列 第 22

Day22 requests 和 lxml

  • 分享至 

  • xImage
  •  

HTTP前端程式庫:requests
text:文字,取得純文字格式的資源本體。
content:內容,取得 byte(位元組)格式的 HTTP 內容。
headers:標頭,取得 HTTP 回應的完整標頭。
status_code:狀態碼,取得 HTTP 狀態碼。
reason:原因,取得 HTTP狀態原因短語。

使用requests下載檔案
例:

import requests as req

url = 'http://swf.com.tw/scrap/img/IR.png'
file_name = url.split('/')[-1]
r = reg.get(url)

with open(file_name, 'wb')as f:
f.write(r.content)

9527 <- 下載檔的位元組大小

lxml解析HTML:

import requests as req
from lxml import html

url = 'http://swf.com. tw/scrap/'
page = req.get(url)
dom = html.fromstring(page.text)
images = dom.xpath('//img/@src')

上面的程式將網頁裡的全部影像檔路徑,以列表格式存放在 images 變數,底下則是透過 for…in迴圈,逐一下載所有影像檔的程式片段

for img in images:
if not img.startswith('http'):
img = url+ img

  h = req.head(img)
  MIME = h.headers['content-type']
  
  if (h.status_code == 200) and ('image'in MIME) :
      print('下載檔案網址:' + img)
      filename = download(img)
      print(filename + '下載完畢!')

上一篇
Day21 Git
下一篇
Day23 多執行緒程式
系列文
從0開始學PYTHON30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言